#ifndef _CkImap_H
#define _CkImap_H
#include "Chilkat_C.h"

HCkImap CkImap_Create(void);
void CkImap_Dispose(HCkImap handle);
BOOL CkImap_getAppendSeen(HCkImap handle);
void CkImap_putAppendSeen(HCkImap handle, BOOL newVal);
void CkImap_getAuthMethod(HCkImap handle, HCkString retval);
void CkImap_putAuthMethod(HCkImap handle, const char *newVal);
BOOL CkImap_getAutoUnwrapSecurity(HCkImap handle);
void CkImap_putAutoUnwrapSecurity(HCkImap handle, BOOL newVal);
int CkImap_getConnectTimeout(HCkImap handle);
void CkImap_putConnectTimeout(HCkImap handle, int newVal);
void CkImap_getConnectedToHost(HCkImap handle, HCkString retval);
void CkImap_getDomain(HCkImap handle, HCkString retval);
void CkImap_putDomain(HCkImap handle, const char *newVal);
long CkImap_getHeartbeatMs(HCkImap handle);
void CkImap_putHeartbeatMs(HCkImap handle, long newVal);
BOOL CkImap_getKeepSessionLog(HCkImap handle);
void CkImap_putKeepSessionLog(HCkImap handle, BOOL newVal);
void CkImap_getLastAppendedMime(HCkImap handle, HCkString retval);
void CkImap_getLastCommand(HCkImap handle, HCkString retval);
void CkImap_getLastErrorHtml(HCkImap handle, HCkString retval);
void CkImap_getLastErrorText(HCkImap handle, HCkString retval);
void CkImap_getLastErrorXml(HCkImap handle, HCkString retval);
void CkImap_getLastIntermediateResponse(HCkImap handle, HCkString retval);
void CkImap_getLastResponse(HCkImap handle, HCkString retval);
void CkImap_getLoggedInUser(HCkImap handle, HCkString retval);
long CkImap_getNumMessages(HCkImap handle);
BOOL CkImap_getPeekMode(HCkImap handle);
void CkImap_putPeekMode(HCkImap handle, BOOL newVal);
int CkImap_getPort(HCkImap handle);
void CkImap_putPort(HCkImap handle, int newVal);
int CkImap_getReadTimeout(HCkImap handle);
void CkImap_putReadTimeout(HCkImap handle, int newVal);
void CkImap_getSelectedMailbox(HCkImap handle, HCkString retval);
char CkImap_getSeparatorChar(HCkImap handle);
void CkImap_putSeparatorChar(HCkImap handle, char newVal);
void CkImap_getSessionLog(HCkImap handle, HCkString retval);
BOOL CkImap_getSsl(HCkImap handle);
void CkImap_putSsl(HCkImap handle, BOOL newVal);
BOOL CkImap_getSslServerCertVerified(HCkImap handle);
BOOL CkImap_getUtf8(HCkImap handle);
void CkImap_putUtf8(HCkImap handle, BOOL newVal);
void CkImap_getVersion(HCkImap handle, HCkString retval);
BOOL CkImap_AppendMail(HCkImap handle, const char *mailbox, HCkEmail email);
BOOL CkImap_AppendMime(HCkImap handle, const char *mailbox, const char *mimeText);
BOOL CkImap_AppendMimeWithDate(HCkImap handle, const char *mailbox, const char *mimeText, SYSTEMTIME *internalDate);
BOOL CkImap_AppendMimeWithFlags(HCkImap handle, const char *mailbox, const char *mimeText, BOOL seen, BOOL flagged, BOOL answered, BOOL draft);
void CkImap_ClearSessionLog(HCkImap handle);
BOOL CkImap_Connect(HCkImap handle, const char *hostname);
BOOL CkImap_Copy(HCkImap handle, long msgId, BOOL bUid, const char *copyToMailbox);
BOOL CkImap_CopyMultiple(HCkImap handle, HCkMessageSet messageSet, const char *copyToMailbox);
BOOL CkImap_CopySequence(HCkImap handle, int startSeqNum, int count, const char *copyToMailbox);
BOOL CkImap_CreateMailbox(HCkImap handle, const char *mailbox);
BOOL CkImap_DeleteMailbox(HCkImap handle, const char *mailbox);
BOOL CkImap_Disconnect(HCkImap handle);
BOOL CkImap_ExamineMailbox(HCkImap handle, const char *mailbox);
BOOL CkImap_Expunge(HCkImap handle);
BOOL CkImap_ExpungeAndClose(HCkImap handle);
HCkEmailBundle CkImap_FetchBundle(HCkImap handle, HCkMessageSet messageSet);
HCkStringArray CkImap_FetchBundleAsMime(HCkImap handle, HCkMessageSet messageSet);
HCkEmailBundle CkImap_FetchChunk(HCkImap handle, int startSeqNum, int count, HCkMessageSet failedSet, HCkMessageSet fetchedSet);
BOOL CkImap_FetchFlags(HCkImap handle, long msgId, BOOL bUid, HCkString strFlags);
HCkEmailBundle CkImap_FetchHeaders(HCkImap handle, HCkMessageSet messageSet);
HCkEmailBundle CkImap_FetchSequence(HCkImap handle, int startSeqNum, int numMessages);
HCkStringArray CkImap_FetchSequenceAsMime(HCkImap handle, int startSeqNum, int count);
HCkEmailBundle CkImap_FetchSequenceHeaders(HCkImap handle, int startSeqNum, int numMessages);
HCkEmail CkImap_FetchSingle(HCkImap handle, long msgId, BOOL bUid);
BOOL CkImap_FetchSingleAsMime(HCkImap handle, long msgId, BOOL bUid, HCkString strMime);
HCkEmail CkImap_FetchSingleHeader(HCkImap handle, long msgId, BOOL bUid);
BOOL CkImap_FetchSingleHeaderAsMime(HCkImap handle, int msgId, BOOL bUID, HCkString outStr);
HCkMessageSet CkImap_GetAllUids(HCkImap handle);
BOOL CkImap_GetMailAttachFilename(HCkImap handle, HCkEmail email, long attachIndex, HCkString strFilename);
long CkImap_GetMailAttachSize(HCkImap handle, HCkEmail email, long attachIndex);
long CkImap_GetMailFlag(HCkImap handle, HCkEmail email, const char *flagName);
long CkImap_GetMailNumAttach(HCkImap handle, HCkEmail email);
long CkImap_GetMailSize(HCkImap handle, HCkEmail email);
HCkCert CkImap_GetSslServerCert(HCkImap handle);
BOOL CkImap_IsConnected(HCkImap handle);
BOOL CkImap_IsLoggedIn(HCkImap handle);
BOOL CkImap_IsUnlocked(HCkImap handle);
void CkImap_LastResponse(HCkImap handle, HCkString str);
HCkMailboxes CkImap_ListMailboxes(HCkImap handle, const char *reference, const char *wildcardedMailbox);
BOOL CkImap_Login(HCkImap handle, const char *login, const char *password);
BOOL CkImap_Logout(HCkImap handle);
BOOL CkImap_RefetchMailFlags(HCkImap handle, HCkEmail emailInOut);
BOOL CkImap_RenameMailbox(HCkImap handle, const char *fromMailbox, const char *toMailbox);
BOOL CkImap_SaveLastError(HCkImap handle, const char *filename);
HCkMessageSet CkImap_Search(HCkImap handle, const char *criteria, BOOL bUid);
BOOL CkImap_SelectMailbox(HCkImap handle, const char *mailbox);
BOOL CkImap_SendRawCommand(HCkImap handle, const char *rawCommand, HCkString rawResponse);
BOOL CkImap_SetDecryptCert2(HCkImap handle, HCkCert cert, HCkPrivateKey key);
BOOL CkImap_SetFlag(HCkImap handle, long msgId, BOOL bUid, const char *flagName, long value);
BOOL CkImap_SetFlags(HCkImap handle, HCkMessageSet messageSet, const char *flagName, long value);
BOOL CkImap_SetMailFlag(HCkImap handle, HCkEmail email, const char *flagName, long value);
void CkImap_SetSslClientCert(HCkImap handle, HCkCert cert);
BOOL CkImap_StoreFlags(HCkImap handle, long msgId, BOOL bUid, const char *flagName, long value);
BOOL CkImap_Subscribe(HCkImap handle, const char *mailbox);
BOOL CkImap_UnlockComponent(HCkImap handle, const char *unlockCode);
BOOL CkImap_Unsubscribe(HCkImap handle, const char *mailbox);
const char *CkImap_authMethod(HCkImap handle);
const char *CkImap_connectedToHost(HCkImap handle);
const char *CkImap_domain(HCkImap handle);
const char *CkImap_fetchFlags(HCkImap handle, long msgId, BOOL bUid);
const char *CkImap_fetchSingleAsMime(HCkImap handle, long msgId, BOOL bUid);
const char *CkImap_fetchSingleHeaderAsMime(HCkImap handle, int msgId, BOOL bUID);
const char *CkImap_getMailAttachFilename(HCkImap handle, HCkEmail email, long attachIndex);
const char *CkImap_lastAppendedMime(HCkImap handle);
const char *CkImap_lastCommand(HCkImap handle);
const char *CkImap_lastErrorHtml(HCkImap handle);
const char *CkImap_lastErrorText(HCkImap handle);
const char *CkImap_lastErrorXml(HCkImap handle);
const char *CkImap_lastIntermediateResponse(HCkImap handle);
const char *CkImap_lastResponse(HCkImap handle);
const char *CkImap_loggedInUser(HCkImap handle);
const char *CkImap_selectedMailbox(HCkImap handle);
const char *CkImap_sendRawCommand(HCkImap handle, const char *rawCommand);
const char *CkImap_sessionLog(HCkImap handle);
const char *CkImap_version(HCkImap handle);
#endif
